/**
 * 表单检查或相关的一些混入
 */
export default {
  methods: {
    /**
     * 检查表单，如果不是有ref的a-form表单则不检查
     * @param formName 表单名称，默认为mainForm
     * @returns {Promise<*>}
     */
    mCheckForm(formName = 'mainForm') {
      return new Promise((resolve, reject) => {
        let form = this.$refs[formName]
        if (form instanceof Array) {
          form = form[0] || undefined
        }
        if (!form || !form.validate) {
          // 没有定义ref或者不是a-form，不需要检查
          return resolve()
        }
        form.validate((v) => {
          if (!v) {
            this.$message.error('请按照要求填写表单')
            reject('processed')
          } else {
            resolve()
          }
        })
      })
    },

    /**
     * 清除表单验证
     * @param formName 默认为mainForm
     */
    mClearValidate(formName = 'mainForm') {
      let form = this.$refs[formName]
      if (form && form.clearValidate) {
        this.$nextTick(() => {
          form.clearValidate()
        })
      }
    }
  }
}
